package sales;
import java.io.Serializable;
import javax.persistence.*;

import credits.Tarjeta;

import products.ProductoInventario;
import users.Usuario;

import java.util.Calendar;
import java.util.List;


/**
 * The persistent class for the venta database table.
 * 
 */
@Entity
@Table(name="venta")
@NamedQueries({  
@NamedQuery(name = "Venta.findEntreFechas", query = "SELECT v FROM Venta v WHERE v.fechaVen >= :fechaInicio AND v.fechaVen <= :fechaFin")})  
public class Venta implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idVenta;
	private int cantCuotas;
	private double cotizacion;
	private double dtoPlanRecambio;
	private Calendar fecha;
	private Calendar fechaVen;
	private boolean moneda;
	private double montoContado;
	private long numAuto;
	private int numTarjeta;
	private boolean origen;
	private String tipoDeVenta;
	private List<ProductoInventario> productoinventarios;
	private Factura factura;
	private Tarjeta tarjeta;
	private Usuario usuario;

    public Venta() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getIdVenta() {
		return this.idVenta;
	}

	public void setIdVenta(int idVenta) {
		this.idVenta = idVenta;
	}


	public int getCantCuotas() {
		return this.cantCuotas;
	}

	public void setCantCuotas(int cantCuotas) {
		this.cantCuotas = cantCuotas;
	}


	public double getCotizacion() {
		return this.cotizacion;
	}

	public void setCotizacion(double cotizacion) {
		this.cotizacion = cotizacion;
	}


	public double getDtoPlanRecambio() {
		return this.dtoPlanRecambio;
	}

	public void setDtoPlanRecambio(double dtoPlanRecambio) {
		this.dtoPlanRecambio = dtoPlanRecambio;
	}


    @Temporal( TemporalType.DATE)
	public Calendar getFecha() {
		return this.fecha;
	}

	public void setFecha(Calendar fecha) {
		this.fecha = fecha;
	}


    @Temporal( TemporalType.DATE)
	public Calendar getFechaVen() {
		return this.fechaVen;
	}

	public void setFechaVen(Calendar fechaVen) {
		this.fechaVen = fechaVen;
	}


	public boolean getMoneda() {
		return this.moneda;
	}

	public void setMoneda(boolean moneda) {
		this.moneda = moneda;
	}


	public double getMontoContado() {
		return this.montoContado;
	}

	public void setMontoContado(double montoContado) {
		this.montoContado = montoContado;
	}


	public long getNumAuto() {
		return this.numAuto;
	}

	public void setNumAuto(long numAuto) {
		this.numAuto = numAuto;
	}


	public int getNumTarjeta() {
		return this.numTarjeta;
	}

	public void setNumTarjeta(int numTarjeta) {
		this.numTarjeta = numTarjeta;
	}


	public boolean getOrigen() {
		return this.origen;
	}

	public void setOrigen(boolean origen) {
		this.origen = origen;
	}


	public String getTipoDeVenta() {
		return this.tipoDeVenta;
	}

	public void setTipoDeVenta(String tipoDeVenta) {
		this.tipoDeVenta = tipoDeVenta;
	}


	//bi-directional many-to-one association to ProductoInventario
	@OneToMany(mappedBy="venta")
	public List<ProductoInventario> getProductoinventarios() {
		return this.productoinventarios;
	}

	public void setProductoinventarios(List<ProductoInventario> productoinventarios) {
		this.productoinventarios = productoinventarios;
	}
	

	//uni-directional many-to-one association to Factura
    @ManyToOne
	@JoinColumn(name="idFactura")
	public Factura getFactura() {
		return this.factura;
	}

	public void setFactura(Factura factura) {
		this.factura = factura;
	}
	

	//uni-directional many-to-one association to Tarjeta
    @ManyToOne
	@JoinColumn(name="idTarjeta")
	public Tarjeta getTarjeta() {
		return this.tarjeta;
	}

	public void setTarjeta(Tarjeta tarjeta) {
		this.tarjeta = tarjeta;
	}
	

	//uni-directional many-to-one association to Usuario
    @ManyToOne
	@JoinColumn(name="idUsuario")
	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
}